// Redux Store配置文件
// 负责配置全局状态管理，包括reducer、中间件和类型定义
import { configureStore } from '@reduxjs/toolkit' // Redux Toolkit的store创建函数
import { useDispatch, useSelector } from 'react-redux' // React Redux的hooks

// 导入reducers（状态切片）
import authReducer from './slices/authSlice' // 认证相关的状态管理
// import userReducer from './slices/userSlice' // 用户相关的状态管理（已注释）

// 创建Redux store
export const store = configureStore({
  reducer: {
    auth: authReducer, // 认证状态
    // user: userReducer, // 用户状态（已注释）
  },
  // 配置中间件
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
      serializableCheck: {
        // 忽略持久化相关的action，避免序列化检查错误
        ignoredActions: ['persist/PERSIST'],
      },
    }),
})

// 导出TypeScript类型定义
export type RootState = ReturnType<typeof store.getState> // 根状态类型
export type AppDispatch = typeof store.dispatch // 应用dispatch类型

// 导出类型安全的hooks
export const useAppDispatch = () => useDispatch<AppDispatch>() // 类型安全的dispatch hook
export const useAppSelector = useSelector as <TSelected>(
  selector: (state: RootState) => TSelected
) => TSelected // 类型安全的selector hook 